package bb.lanxing.calc;

import com.github.mikephil.charting.utils.Utils;
import bb.lanxing.model.WorkoutDatabaseHelper;
import bb.lanxing.model.database.IWorkout;
import bb.lanxing.model.database.PacePoint;
import bb.lanxing.model.database.Workout;
import bb.lanxing.model.json.WorkoutMergeInfo;
import bb.lanxing.util.CommonUtil;
import java.util.ArrayList;
import java.util.List;

public class PaceHelper {
    private PacePoint maxPacePoint;
    private PacePoint minPacePoint;
    private List<PacePoint> pacePointList = new ArrayList();
    private IWorkout workout;

    public void init(IWorkout workout) {
        this.workout = workout;
        workout.checkPacePoint();
        this.pacePointList = WorkoutDatabaseHelper.queryPacePoint(workout.getUuid());
        initPoint();
    }

    public void init(WorkoutMergeInfo workoutMergeInfo, List<PacePoint> pacePoints) {
        if (workoutMergeInfo == null || pacePoints == null) {
            return;
        }
        Workout workout = new Workout();
        workout.setDistance(workoutMergeInfo.getDistance());
        workout.setDuration(workoutMergeInfo.getDuration());
        this.workout = workout;
        this.pacePointList = new ArrayList(pacePoints);
        initPoint();
    }

    private void initPoint() {
        PacePoint pacePoint = this.pacePointList.isEmpty() ? null : this.pacePointList.get(0);
        this.maxPacePoint = pacePoint;
        this.minPacePoint = pacePoint;
        for (PacePoint pacePoint2 : this.pacePointList) {
            if (pacePoint2.getType() != PacePoint.TYPE_HALF_MARATHON && pacePoint2.getType() != PacePoint.TYPE_FULL_MARATHON) {
                if (pacePoint2.getDuration() > this.maxPacePoint.getDuration()) {
                    this.maxPacePoint = pacePoint2;
                }
                if (pacePoint2.getDuration() < this.minPacePoint.getDuration() && pacePoint2.getType() != PacePoint.TYPE_LAST_ODD) {
                    this.minPacePoint = pacePoint2;
                }
            }
        }
    }

    public void release() {
        List<PacePoint> list = this.pacePointList;
        if (list != null) {
            list.clear();
            this.pacePointList = null;
        }
    }

    public boolean isPaceValid() {
        List<PacePoint> list = this.pacePointList;
        return list != null && !list.isEmpty();
    }

    public List<PacePoint> getPacePointList() {
        return this.pacePointList;
    }

    public String getMinPace() {
        PacePoint pacePoint = this.minPacePoint;
        return pacePoint == null ? "0'0\"" : pacePoint.getPaceFormat();
    }

    public String getMaxPace() {
        PacePoint pacePoint = this.maxPacePoint;
        return pacePoint == null ? "0'0\"" : pacePoint.getPaceFormat();
    }

    public String getAvgPace() {
        IWorkout iWorkout = this.workout;
        return iWorkout == null ? "0'0\"" : CommonUtil.formatPace(iWorkout.getDistance() / this.workout.getDuration());
    }

    public long getMaxDuration() {
        PacePoint pacePoint = this.maxPacePoint;
        if (pacePoint == null) {
            return 0L;
        }
        return pacePoint.getDuration();
    }

    public long getMinDuration() {
        PacePoint pacePoint = this.minPacePoint;
        if (pacePoint == null) {
            return 0L;
        }
        return pacePoint.getDuration();
    }

    public double getTotalDistance() {
        IWorkout iWorkout = this.workout;
        return iWorkout == null ? Utils.DOUBLE_EPSILON : iWorkout.getDistance();
    }

    public long getTotalDuration() {
        IWorkout iWorkout = this.workout;
        if (iWorkout == null) {
            return 0L;
        }
        return iWorkout.getDuration();
    }

    public IWorkout getWorkout() {
        return this.workout;
    }
}
